<!DOCTYPE html>
<script src="../resources/runner.js"></script>
<style>
  #container {
    width: 200px;
  }
  .inline_size {
    container-type: inline-size;
  }
</style>
<div id=container>
  <div id=target></div>
</div>
<style id=style></style>
<script>

// Makes a big container query as follows:
//
// @container ((width = 1000px) or (width = 1001px) or ... (width = (1000+n)px) or (width = 200px)) {
//   #target {}
//   #target {}
//   ... n times in total ...
//   #target {}
// }
function makeQuery(n) {
  let expressions = [];
  let rules = [];
  for (let i = 0; i < n; i++) {
    expressions.push(`(width = ${1000+i}px)`);
    rules.push('#target { }');
  }
  expressions.push(`(width = 200px)`);
  return `@container (${expressions.join(' or ')}) { ${rules.join('\n') } }`;
}

function setup() {
  style.textContent = makeQuery(1000);
}

setup();

PerfTestRunner.measureTime({
    description: 'Big container query with many inner rules',
    run: () => {
      target.offsetTop;
      container.classList.toggle('inline_size');
      target.offsetTop;
      container.classList.toggle('inline_size');
    }
});

</script>

